1
//--------------------------------------------------------------------------
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // File: ParallelLinqOptions.cs
7 //--------------------------------------------------------------------------
9 using System
.Threading
;
10 using System
.Threading
.Tasks
;
14 /// <summary>Provides a grouping for common Parallel LINQ options.</summary>
15 public sealed class ParallelLinqOptions
: ParallelOptions
17 private ParallelExecutionMode _executionMode
= ParallelExecutionMode
.Default
;
18 private ParallelMergeOptions _mergeOptions
= ParallelMergeOptions
.Default
;
19 private bool _ordered
= false;
21 /// <summary>Gets or sets the execution mode.</summary>
22 public ParallelExecutionMode ExecutionMode
24 get { return _executionMode; }
27 if (value != ParallelExecutionMode
.Default
&&
28 value != ParallelExecutionMode
.ForceParallelism
) throw new ArgumentOutOfRangeException("ExecutionMode");
29 _executionMode
= value;
33 /// <summary>Gets or sets the merge options.</summary>
34 public ParallelMergeOptions MergeOptions
36 get { return _mergeOptions; }
39 if (value != ParallelMergeOptions
.AutoBuffered
&&
40 value != ParallelMergeOptions
.Default
&&
41 value != ParallelMergeOptions
.FullyBuffered
&&
42 value != ParallelMergeOptions
.NotBuffered
) throw new ArgumentOutOfRangeException("MergeOptions");
43 _mergeOptions
= value;
47 /// <summary>Gets or sets whether the query should retain ordering.</summary>
50 get { return _ordered; }
51 set { _ordered = value; }